// Fonts.cpp

#include "stdafx.h"
#include "BkBtl.h"
#include <SDL.h>

//////////////////////////////////////////////////////////////////////

extern const BYTE UkncFont[];
extern const int UkncFontSize;

SDL_Surface* m_FontSurfaceUknc;


void Fonts_Initialize()
{
    m_FontSurfaceUknc = SDL_CreateRGBSurface(0, 8, 224 * 11, 8, 0,0,0,0);
    SDL_SetColorKey(m_FontSurfaceUknc, SDL_SRCCOLORKEY, 0);
    //SDL_SetAlpha(m_FontSurfaceUknc, SDL_SRCALPHA, 128);

    SDL_Color colors[2];
    colors[0].r = colors[0].g = colors[0].b = 0;
    colors[1].r = colors[1].g = colors[1].b = 255;
    SDL_SetPalette(m_FontSurfaceUknc, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 2);

    // Prepare font surface for UkncFont
    SDL_LockSurface(m_FontSurfaceUknc);
    const BYTE* pSrc = UkncFont;
    BYTE* pDst = (BYTE*)m_FontSurfaceUknc->pixels;
    for (int i = 0; i < 224; i++)
    {
        for (int j = 0; j < 11; j++)
        {
            BYTE cc = *pSrc++;
            for (int b = 0; b < 8; b++)
            {
                *pDst++ = (cc & 1) ? 1 : 0;
                cc = cc >> 1;
            }
        }
    }
    SDL_UnlockSurface(m_FontSurfaceUknc);
}

void Fonts_Finalize()
{
    SDL_FreeSurface(m_FontSurfaceUknc);
    m_FontSurfaceUknc = NULL;
}


void Font_DrawText(SDL_Surface* fontSurface, int x, int y, int charw, int charh, const char *str, SDL_Surface* surface)
{
    int charline;
    unsigned char ch;
    SDL_Rect src, dest;

    if (str == NULL) return;
    if (y >= SCREEN_HEIGHT) return;

    while (*str != 0)
    {
        ch = *str;
        if (ch >= ' ')
        {
            charline = (int)ch - ' ';

            src.x = 0;  src.y = charline * charh;
            src.w = charw;  src.h = charh;
            dest.x = x;  dest.y = y;
            dest.w = charw;  dest.h = charh;
            SDL_BlitSurface(fontSurface, &src, surface, &dest);
        }
        x += charw;
        if (x >= SCREEN_WIDTH) break;

        str++;
    }
}
void Font_DrawText(int x, int y, const char *str, SDL_Surface* surface)
{
    Font_DrawText(m_FontSurfaceUknc, x, y, 8, 11, str, surface);
}
void Font_DrawText(int x, int y, const char *str)
{
    Font_DrawText(m_FontSurfaceUknc, x, y, 8, 11, str, SDL_GetVideoSurface());
}


// UKNC system font, 8x11 pixels, 11 bytes for each symbol, symbols 32..255, 2464 bytes
const int UkncFontSize = 2464;
const BYTE UkncFont[2464] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  //   space
0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, 0x00,  // !
0x00, 0x24, 0x24, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // "
0x00, 0x00, 0x24, 0x24, 0x7E, 0x24, 0x7E, 0x24, 0x24, 0x00, 0x00,  // #
0x00, 0x00, 0x42, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x42, 0x00, 0x00,  //   currency symbol
0x00, 0x00, 0x86, 0x46, 0x20, 0x10, 0x08, 0xC4, 0xC2, 0x00, 0x00,  // %
0x00, 0x18, 0x24, 0x24, 0x18, 0x14, 0xA2, 0x42, 0xBC, 0x00, 0x00,  // &
0x00, 0x30, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // '
0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, 0x00,  // (
0x00, 0x08, 0x10, 0x20, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, 0x00,  // )
0x00, 0x00, 0x00, 0x10, 0x54, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00,  // *
0x00, 0x00, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x00, 0x00,  // +
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, 0x08,  // ,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,  // -
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,  // .
0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00,  // / slash
0x00, 0x3C, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x3C, 0x00, 0x00,  // 0 zero
0x00, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,  // 1
0x00, 0x3C, 0x42, 0x42, 0x20, 0x10, 0x08, 0x44, 0x7E, 0x00, 0x00,  // 2
0x00, 0x7E, 0x20, 0x10, 0x38, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00,  // 3
0x00, 0x20, 0x30, 0x28, 0x24, 0x22, 0x7E, 0x20, 0x20, 0x00, 0x00,  // 4
0x00, 0x7E, 0x02, 0x02, 0x3E, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00,  // 5
0x00, 0x3C, 0x42, 0x02, 0x3E, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,  // 6
0x00, 0x7E, 0x42, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00,  // 7
0x00, 0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,  // 8
0x00, 0x3C, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x42, 0x3C, 0x00, 0x00,  // 9
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,  // :
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x10, 0x08,  // ;
0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00,  // <
0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,  // =
0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00,  // >
0x00, 0x38, 0x44, 0x40, 0x20, 0x10, 0x10, 0x00, 0x10, 0x00, 0x00,  // ? question mark
0x00, 0x00, 0x3C, 0x42, 0x80, 0x9C, 0x92, 0x92, 0x6C, 0x00, 0x00,  // @
0x00, 0x18, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00, 0x00,  // A
0x00, 0x3E, 0x42, 0x42, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00,  // B
0x00, 0x3C, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00,  // C
0x00, 0x3E, 0x44, 0x84, 0x84, 0x84, 0x84, 0x44, 0x3E, 0x00, 0x00,  // D
0x00, 0x7E, 0x02, 0x02, 0x3E, 0x02, 0x02, 0x02, 0x7E, 0x00, 0x00,  // E
0x00, 0x7E, 0x02, 0x02, 0x3E, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00,  // F
0x00, 0x3C, 0x42, 0x02, 0x02, 0x72, 0x42, 0x42, 0x3C, 0x00, 0x00,  // G
0x00, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00, 0x00,  // H
0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00,  // I
0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x12, 0x0C, 0x00, 0x00,  // J
0x00, 0x42, 0x22, 0x12, 0x0E, 0x0A, 0x12, 0x22, 0x42, 0x00, 0x00,  // K
0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x7E, 0x00, 0x00,  // L
0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00,  // M
0x00, 0x42, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x42, 0x42, 0x00, 0x00,  // N
0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,  // O
0x00, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x00, 0x00,  // P
0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x52, 0x3C, 0x40, 0x00,  // Q
0x00, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x12, 0x22, 0x42, 0x00, 0x00,  // R
0x00, 0x3C, 0x42, 0x02, 0x3C, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00,  // S
0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,  // T
0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,  // U
0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00,  // V
0x00, 0x82, 0x82, 0x82, 0x82, 0x92, 0xAA, 0xC6, 0x82, 0x00, 0x00,  // W
0x00, 0x42, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x42, 0x00, 0x00,  // X
0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,  // Y
0x00, 0x7E, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x7E, 0x00, 0x00,  // Z
0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00,  // [
0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00,  // \ backslash
0x00, 0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x38, 0x00, 0x00,  // ]
0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00,  // ^
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00,  // _
0x00, 0x18, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // `
0x00, 0x00, 0x00, 0x3C, 0x40, 0x7C, 0x42, 0x42, 0xBC, 0x00, 0x00,  // a
0x00, 0x02, 0x02, 0x3A, 0x46, 0x42, 0x42, 0x46, 0x3A, 0x00, 0x00,  // b
0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00,  // c
0x00, 0x40, 0x40, 0x5C, 0x62, 0x42, 0x42, 0x62, 0x5C, 0x00, 0x00,  // d
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x02, 0x7C, 0x00, 0x00,  // e
0x00, 0x30, 0x48, 0x08, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,  // f
0x00, 0x00, 0x00, 0x5C, 0x62, 0x42, 0x42, 0x62, 0x5C, 0x40, 0x3C,  // g
0x00, 0x02, 0x02, 0x3A, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00,  // h
0x00, 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00,  // i
0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x12, 0x0C,  // j
0x00, 0x02, 0x02, 0x22, 0x12, 0x0E, 0x12, 0x22, 0x42, 0x00, 0x00,  // k
0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00,  // l
0x00, 0x00, 0x00, 0x6E, 0x92, 0x92, 0x92, 0x92, 0x92, 0x00, 0x00,  // m
0x00, 0x00, 0x00, 0x3A, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00,  // n
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,  // o
0x00, 0x00, 0x00, 0x3A, 0x46, 0x42, 0x42, 0x46, 0x3A, 0x02, 0x02,  // p
0x00, 0x00, 0x00, 0x5C, 0x62, 0x42, 0x42, 0x62, 0x5C, 0x40, 0x40,  // q
0x00, 0x00, 0x00, 0x3A, 0x46, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00,  // r
0x00, 0x00, 0x00, 0x3C, 0x02, 0x3C, 0x40, 0x42, 0x3C, 0x00, 0x00,  // s
0x00, 0x08, 0x08, 0x1C, 0x08, 0x08, 0x08, 0x48, 0x30, 0x00, 0x00,  // t
0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5C, 0x00, 0x00,  // u
0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00,  // v
0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, 0x6C, 0x00, 0x00,  // w
0x00, 0x00, 0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00, 0x00,  // x
0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x18, 0x08, 0x04, 0x02,  // y
0x00, 0x00, 0x00, 0x7E, 0x20, 0x10, 0x08, 0x04, 0x7E, 0x00, 0x00,  // z
0x00, 0x00, 0x60, 0x10, 0x10, 0x0C, 0x10, 0x10, 0x60, 0x00, 0x00,  // {
0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,  // |
0x00, 0x00, 0x0C, 0x10, 0x10, 0x60, 0x10, 0x10, 0x0C, 0x00, 0x00,  // }
0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  //   pipe at top
0x00, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x00, 0x00,  //   black block

0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,  //   TODO: pi letter
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x00,  //   
0x00, 0x00, 0x00, 0x04, 0x02, 0xFF, 0x02, 0x04, 0x00, 0x00, 0x00,  //   TODO: heart sign
0x00, 0x00, 0x00, 0x20, 0x40, 0xFF, 0x40, 0x20, 0x00, 0x00, 0x00,  //  
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x10, 0x00, 0x7C, 0x00, 0x10, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x40, 0x40, 0x40, 0x48, 0x44, 0x7E, 0x04, 0x08, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0x08, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0x14, 0xF4, 0x14, 0x14, 0x14, 0x14, 0x14, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x08, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x14, 0x14, 0x14, 0x14, 
0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0xFF, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0x08, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x08, 0x08, 0x08, 0x08, 0xF8, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 
0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x00, 0x00, 0x00, 0x00, 
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, 
0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x14, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0x14, 0x14, 
0x14, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 
0x08, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x08, 
0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x14, 0x14, 0x14, 0x14, 
0x00, 0x00, 0x00, 0x62, 0x92, 0x92, 0x9E, 0x92, 0x62, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3C, 0x40, 0x7C, 0x42, 0x42, 0xBC, 0x00, 0x00, 
0x00, 0x40, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x7E, 0x40, 0x00, 
0x00, 0x00, 0x00, 0x70, 0x48, 0x44, 0x44, 0x44, 0xFE, 0x82, 0x00, 
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x02, 0x7C, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x10, 0x7C, 0x92, 0x92, 0x92, 0x7C, 0x10, 0x10, 
0x00, 0x00, 0x00, 0x7E, 0x42, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00, 0x00, 
0x00, 0x18, 0x00, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x42, 0x22, 0x12, 0x1E, 0x22, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x70, 0x48, 0x44, 0x44, 0x44, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x7C, 0x44, 0x42, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3A, 0x46, 0x42, 0x42, 0x46, 0x3A, 0x02, 0x02, 
0x00, 0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x00, 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x18, 0x08, 0x04, 0x02, 
0x00, 0x00, 0x00, 0x92, 0x54, 0x38, 0x38, 0x54, 0x92, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3E, 0x42, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x82, 0x82, 0x9E, 0xA2, 0xA2, 0x9E, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3C, 0x40, 0x38, 0x40, 0x40, 0x3C, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x92, 0x92, 0x92, 0x92, 0x92, 0xFE, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3E, 0x40, 0x40, 0x7C, 0x40, 0x3E, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x92, 0x92, 0x92, 0x92, 0x92, 0xFE, 0x80, 0x80, 
0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x07, 0x05, 0x7C, 0x84, 0x84, 0x7C, 0x00, 0x00, 
0x00, 0x62, 0x92, 0x92, 0x92, 0x9E, 0x92, 0x92, 0x62, 0x00, 0x00, 
0x00, 0x18, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x7E, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 
0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xFE, 0x80, 0x00, 
0x00, 0x70, 0x48, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFE, 0x82, 0x00, 
0x00, 0x7E, 0x02, 0x02, 0x3E, 0x02, 0x02, 0x02, 0x7E, 0x00, 0x00, 
0x00, 0x10, 0x7C, 0x92, 0x92, 0x92, 0x92, 0x7C, 0x10, 0x10, 0x00, 
0x00, 0x7E, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 
0x00, 0x42, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x42, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00, 0x00, 
0x18, 0x42, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x42, 0x22, 0x12, 0x0E, 0x12, 0x22, 0x42, 0x82, 0x00, 0x00, 
0x00, 0x70, 0x48, 0x44, 0x44, 0x44, 0x44, 0x44, 0x42, 0x00, 0x00, 
0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 
0x00, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 
0x00, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x00, 0x00, 
0x00, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x00, 0x00, 
0x00, 0x3C, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0xFE, 0x92, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 
0x00, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x92, 0x92, 0x54, 0x38, 0x54, 0x92, 0x92, 0x92, 0x00, 0x00, 
0x00, 0x3E, 0x42, 0x42, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 
0x00, 0x02, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 
0x00, 0x82, 0x82, 0x82, 0x9E, 0xA2, 0xA2, 0xA2, 0x9E, 0x00, 0x00, 
0x00, 0x3C, 0x42, 0x40, 0x38, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xFE, 0x00, 0x00, 
0x00, 0x3C, 0x42, 0x80, 0x80, 0xF8, 0x80, 0x42, 0x3C, 0x00, 0x00, 
0x00, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xFE, 0x80, 0x80, 
0x00, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00, 
0x00, 0x07, 0x05, 0x04, 0x7C, 0x84, 0x84, 0x84, 0x7C, 0x00, 0x00
};
